ハードウェアテスト

概要

ファイル: \examples\Processing\DebuggingAndTest\HardwareTest\HardwareTest.va

デフォルトプラットフォーム: mE5-MA-VCL

簡単な説明

DMA、RAM、GPIO、トリガー、LEDのハードウェアセルフテストの例です。 この例では、parametersライブラリの演算子を多用しています。

ハードウェアテストの例では、ハードウェアのセルフテストを実行します。

このアプレットには、以下の機能が含まれています。

  • DMAパフォーマンスのテスト:さまざまなメモリサイズと割り込みレートに対応する多様な画像サイズ
  • RAMテスト:エラーと処理のチェック
  • カメラ:カメラポートの画像取り込みのチェック
  • カメラトリガー:カメラにトリガー信号を送信
  • GPIO:GPIの監視とGPOの設定
  • イベントテスト:ソフトウェアコールバックイベントの生成
  • モニタリング:FPGAの温度、電源、PoCLなど(BoardStatusを参照)

次の図は、アプレットの機能ブロックを示しています。

アプレット「Hardware Test」のブロック図

図283. アプレット「Hardware Test」のブロック図


VisualAppletsの実装は2つのプロセスに分かれています。 Process0には、DMAテスト、RAMテスト、カメラ取り込みといったすべての画像処理パーツが含まれています。 一方、Process1には、実行中の取り込みとは独立したパーツが含まれています。 DMA演算子を持たないプロセスはアプレットのロード時に即座に開始されるため、ここでの機能は取り込みとは独立して使用できます。 詳細については、「DMAなしのプロセス / トリガープロセス」を参照してください。

次の2つのスクリーンショットは、Process0とProcess1を示しています。

ハードウェアテスト Process0

図284. ハードウェアテスト Process0


ハードウェアテスト Process1

図285. ハードウェアテスト Process1


このアプレットを簡単に使用できるようにするため、parametersライブラリの演算子が集中活用されて実装されています。 H-Boxの実装には機能パーツが含まれています。 パラメータは、ビューを分離するためにH-Boxパラメータのプロパティにリストされます。 これは、次のスクリーンショットに示すように、使いやすいパラメータのみがリストされるmicroDisplayなどでアプレットを使用する場合に便利です。

microDisplayにおけるアプレット「Hardware Test」のパラメータ変換と参照の使用

図286. microDisplayにおけるアプレット「Hardware Test」のパラメータ変換と参照の使用


アプレットの実装はシンプルであり、VAファイルを調べることで簡単に理解できます。 ただし、その使用方法を理解するために、パラメータの変換と参照の一部を詳しく見ていきます。

メイン画像処理部の実装

メインの画像処理部分には、RAMテスト、DMAパフォーマンスのテスト、カメラ取り込みが含まれています。 アプレットでは、DMAチャンネル上で一度にいずれかのモードのみを出力できます。 そのため、複数のSourceSelector演算子が使用されます。 正しい入力インデックスを指定するパラメータ設定を回避するため、簡単に使用できるようにEnumParamTranslator演算子を使用しています。

RAMテスト、DMAパフォーマンステスト、カメラアクジション用のアップレットハードウェアテスト実装

図287. RAMテスト、DMAパフォーマンステスト、カメラアクジション用のアップレットハードウェアテスト実装


以下では、TranslateOutputSelectのパラメータ値について詳しく説明します。

まず、列挙値を定義する必要があります。

"DMA_Performance" = 0x001;
"Camera" = 0x002;
"RAM0_Difference" = 0x000;
"RAM0_Errors" = 0x100;
"RAM1_Difference" = 0x010;
"RAM1_Errors" = 0x110;
"RAM2_Difference" = 0x020;
"RAM2_Errors" = 0x120;
"RAM3_Difference" = 0x030;
"RAM3_Errors" = 0x130;

ご覧のとおり、列挙値は16進数として定義されています。 これにより、3つのSourceSelectorモジュールへの割り当てが容易になります。 下位4ビットはモジュールTestMode.SelectSourceに使用され、4〜7ビットはRAMTest/SelectRAM.SelectSourceに、8〜11ビットはRAMTest/SelectRAMOutputMode/EnableBitpattern.SelectSourceに使用されます。 これにより、パラメータWriteActionおよびReadActionの実装が非常にシンプルになります。

その後、変換された値を列挙値とともに使用できます。 値を変更すると、SourceSelectorモジュールのパラメータ値が自動的に変更されます。

DMA パフォーマンスパターンジェネレータの実装

H-Box GeneratorDMAPerformanceには、パターンジェネレータのほか、出力フレームレートを制御するためのイメージバルブが含まれています。 パターンの生成は非常にシンプルで、ブランクイメージジェネレータや、ピクセルおよび画像Counterを使用してローリング斜めパターンを生成します。

バルブは、周期ジェネレータ演算子Generateによって制御されます。 ジェネレータの単位はティックで指定されます。 時間ベースでフレームレートを指定するため、変換演算子FloatParamTranslatorを使用します。 したがって、この演算子を使用して秒間フレーム数(fps)からティックへ変換します。 次のスクリーンショットに実装を示します。

FloatParamTranslatorを使用した秒間フレーム数からティックへの変換

図288. FloatParamTranslatorを使用した秒間フレーム数からティックへの変換


演算子IntParamTranslatorを使用したサンプルHardwareTestでの幅と高さの設定

前のセクションで示した手順と同じ処理が、画像の幅と高さに対しても行われます。 この場合、演算子IntParamTranslatorを使用できます。 ここでは、設計内の2つのモジュールに値を直接転送できます。 パラメータDisplayNameおよびDisplayHierarchyに指定された値に注意してください。

アップレットでの幅と高さを簡単に設定するためのIntParamTranslatorの使用

図289. アップレットでの幅と高さを簡単に設定するためのIntParamTranslatorの使用